package com.geor.gcv.ict;

import org.opencv.core.Mat;

/**
 * 分类器
 * 
 * @author geor.lusongnan
 *
 */
public interface Classifier {
	/**
	 * 学习
	 * 
	 * @param in
	 *            输入路径
	 * @param out
	 *            输出路径
	 */
	void train(String in, String out);

	/**
	 * 加载必要的配置
	 * 
	 * @param key
	 */
	void load(String key);

//	void unLoad();

	/**
	 * 识别
	 * 
	 * @param mat
	 * @return
	 */
	String predict(Mat mat);
	
	/**
	 * 识别，规定内容格式如下:
	 * @param mat
	 * @param contents
	 * 			"身","份","证" 或   "身份证"
	 * @return
	 */
	String predict(Mat mat, String...contents);

	/**
	 * 识别
	 * 
	 * @param filepath
	 * @return
	 */
	String predict(String filepath);

	/**
	 * 获得相似度
	 * 
	 * @return
	 */
	float getSimilarity();

}
